토비의 스프링 3.1 1. 오브젝트와 의존관계 - DAO의 분리 1.2.1 관심사의 분리 객체지향 세계에서는 비즈니스 요구사항에 따라서 오브젝트에 대한 설계가 변할 수 있다. 즉, 오브젝트를 구현한 코드가 변할 수 있다는 것 이다. 객체지향 설계와 프로그래밍이 이전의 절차적 프로그래밍에 비해 좀 더 번거러운 작업을 요구하는 이유도 여기에 있다. 객체지향 설계의 변화에 효과적으로 대처할 수 있다는 특징 때문이다. 변화에 대응할 수 있는 가장 좋은 대책 : ... book토비의 스프링 3.1SpringSpring 1. 오브젝트와 의존관계 - DAO의 확장 이전 장에서 "객체지향 세계에서는 비즈니스 요구사항에 따라서 오브젝트에 대한 설계가 변할 수 있다." 라고 했다. 그런데 여러 오브젝트들은 서로 다른 변화의 성격을 갖고 있다. 변화의 성격이 다른 것을 분리해서, 서로 영향을 주지 않은 채로 각각 필요한 시점에 독립적으로 변경할 수 있게 하기 위해서다. 이번에는 관심사가 다르고 변화의 성격이 다른 코드를 완전히 독립적인 클래스로 만들어서 분리... book토비의 스프링 3.1SpringSpring 1. 오브젝트와 의존관계 - IoC IoC는 Inversion of Conrol (제어의 역전)의 약자이다. 1.4.1 오브젝트 팩토리 현재 UserDao의 클라이언트 오브젝트인 main은 2개의 관심사를 갖고 있다. UserDao와 ConnectionMaker 구현 클래스의 오브젝트를 만드는 것 그렇게 만들어진 두 개의 오브젝트가 런타임 시점에 연결돼서 사용(테스트)되는 것 위 2개의 관심사 까지 분리해보도록 하겠다. fac... book토비의 스프링 3.1SpringSpring 2. 테스트 - main (UserDaoTest) 다시보기 스프링에서의 테스트 테스트 변화한 코드에 대한 확신을 줄 수 있는 테스트 기술 1장에서 만든 UserDao가 기대했던 대로 동작하는지 확인하기 위해 간단한 테스트 코드 (main 클래스)를 만들었다. 테스트 : 내가 예상하고 의도했던 대로 코드가 정확히 동작하는지를 확인해서, 만든 코드를 확신할 수 있게 해주는 작업이다. 1장에서 만들었던 main( ) 테스트 코드 이다. 이 테스트 코드 내... Spring토비의 스프링 3.1bookSpring 2. 테스트 - main (UserDaoTest) 개선 main (UserDaoTest)에는 두 가지 문제점이 있다. 수동 확인(테스트 검증) 작업의 번거로움 2.2.1 테스트 검증의 자동화 현재 테스트를 통해 검증하고 싶은 사항은 두 가지 이다. add( )에 전달한 User오브젝트의 정보가 빠짐없이 DB에 등록되었는지 add( )를 통해 DB에 등록된 User오브젝트의 정보를 DB에서 정확히 가려왔는지 get( )통해 다시 DB에서 가져온 U... Spring토비의 스프링 3.1bookSpring
1. 오브젝트와 의존관계 - DAO의 분리 1.2.1 관심사의 분리 객체지향 세계에서는 비즈니스 요구사항에 따라서 오브젝트에 대한 설계가 변할 수 있다. 즉, 오브젝트를 구현한 코드가 변할 수 있다는 것 이다. 객체지향 설계와 프로그래밍이 이전의 절차적 프로그래밍에 비해 좀 더 번거러운 작업을 요구하는 이유도 여기에 있다. 객체지향 설계의 변화에 효과적으로 대처할 수 있다는 특징 때문이다. 변화에 대응할 수 있는 가장 좋은 대책 : ... book토비의 스프링 3.1SpringSpring 1. 오브젝트와 의존관계 - DAO의 확장 이전 장에서 "객체지향 세계에서는 비즈니스 요구사항에 따라서 오브젝트에 대한 설계가 변할 수 있다." 라고 했다. 그런데 여러 오브젝트들은 서로 다른 변화의 성격을 갖고 있다. 변화의 성격이 다른 것을 분리해서, 서로 영향을 주지 않은 채로 각각 필요한 시점에 독립적으로 변경할 수 있게 하기 위해서다. 이번에는 관심사가 다르고 변화의 성격이 다른 코드를 완전히 독립적인 클래스로 만들어서 분리... book토비의 스프링 3.1SpringSpring 1. 오브젝트와 의존관계 - IoC IoC는 Inversion of Conrol (제어의 역전)의 약자이다. 1.4.1 오브젝트 팩토리 현재 UserDao의 클라이언트 오브젝트인 main은 2개의 관심사를 갖고 있다. UserDao와 ConnectionMaker 구현 클래스의 오브젝트를 만드는 것 그렇게 만들어진 두 개의 오브젝트가 런타임 시점에 연결돼서 사용(테스트)되는 것 위 2개의 관심사 까지 분리해보도록 하겠다. fac... book토비의 스프링 3.1SpringSpring 2. 테스트 - main (UserDaoTest) 다시보기 스프링에서의 테스트 테스트 변화한 코드에 대한 확신을 줄 수 있는 테스트 기술 1장에서 만든 UserDao가 기대했던 대로 동작하는지 확인하기 위해 간단한 테스트 코드 (main 클래스)를 만들었다. 테스트 : 내가 예상하고 의도했던 대로 코드가 정확히 동작하는지를 확인해서, 만든 코드를 확신할 수 있게 해주는 작업이다. 1장에서 만들었던 main( ) 테스트 코드 이다. 이 테스트 코드 내... Spring토비의 스프링 3.1bookSpring 2. 테스트 - main (UserDaoTest) 개선 main (UserDaoTest)에는 두 가지 문제점이 있다. 수동 확인(테스트 검증) 작업의 번거로움 2.2.1 테스트 검증의 자동화 현재 테스트를 통해 검증하고 싶은 사항은 두 가지 이다. add( )에 전달한 User오브젝트의 정보가 빠짐없이 DB에 등록되었는지 add( )를 통해 DB에 등록된 User오브젝트의 정보를 DB에서 정확히 가려왔는지 get( )통해 다시 DB에서 가져온 U... Spring토비의 스프링 3.1bookSpring